今天這篇文章探討的是如何不使用 docker 工具來搭建一個 contaienr image。
作者開頭就提到 docker 一個知名的安全問題就是要透過 root 的方式來建置 docker image。
本篇文章會著重於
1. docker 此種設定的安全性問題
2. 如何透過 Buildah & Podman 來作為取代的解決方案
3. 如何透過 Kaniko 這個由 Google 維護的專案來取代 Docker
文章前面簡單介紹 Docker 的架構, Docker Daemon 預設使用 unix socket 的方式去連接,導致 docker cli 也必須要使用 root 的方式去運行。
為了從 root 的世界中脫離,作者提到可以使用 Buildah 來建置 container image 並且使用 podman 來運行 container。
過往這些操作全部都由一個 docker daemon 完成,現在則是有不同的開源專案負責處理各自功能,更像專業分工。
這邊再次提醒,一切的一切目前都是基於 OCI 的標準去完成,所以 docker 建置完成的 image 可以透過 podman 運行,反過來 buildah 建置的 image 也可以透過 docker 去運行。
Kaniko 基於一個非 root 的身份來建置 contaienr image,更常見的使用環境是於 container 內透過 kaniko 去建置 contaienr image。
因為此特性,該工具也可以很漂亮的於 Kubernetes 內去使用,
原文針對這兩系列的工具都有範例介紹,有興趣的可以點選原文去參考如何使用
https://medium.com/containers-101/docker-images-without-docker-a-practical-guide-7af1f6f8747c